//package com.per.mybootall.rabbitmq;
//
//
//import org.springframework.amqp.core.*;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * rabbitmq：消费者
// *
// * 通过这个配置会自动创建一个绑定了交换机的队列并且同时指定了路由
// * */
//
//@Configuration
//public class QueueConfig {
//    //业务交换机
//    @Value("${spring.rabbitmq.exchange}")
//    private String exchange;
//
//
//
////------------------------------------------------yyy配置的一个业务交换机与队列【持久化】-----------------------------------------------------------------
//    //业务交换机
//    @Bean("newExchange")
//    public Exchange liveExchange(){
//        return ExchangeBuilder.topicExchange(exchange).build();
//    }
//
//    //业务绑定
//    @Bean("Binding")
//    Binding liveBinding(@Qualifier("newQueue") Queue queue, @Qualifier("newExchange") Exchange exchange){
//        return BindingBuilder.bind(queue).to(exchange).with("newRoutingKey").noargs();
//    }
//
//    //业务队列====>>>绑定死信队列
//    @Bean("newQueue")
//    public Queue deadQueue(){
//        //在durable的时候被设置了持久化，可以点进去看源码【this.durable = true;】
//        return QueueBuilder.durable("newQueue")
//                .withArgument("x-dead-letter-exchange","dieExchange")
//                .withArgument("x-dead-letter-routing-key","dieRoutingKey")
//                .build();
//    }
//
////------------------------------------------------yyy配置的一个业务交换机与队列【持久化】-----------------------------------------------------------------
//
//
//
//
//
//
//
//
//
//
////------------------------------------------------yyy配置的一个死信交换机与队列【持久化】-----------------------------------------------------------------
//    //死信交换机
//    @Bean("dieExchange")
//    public Exchange dieExchange(){
//        return ExchangeBuilder.topicExchange("dieExchange").build();
//    }
//
//    //死信绑定
//    @Bean("dieBinding")
//    public Binding dieBinding(@Qualifier("dieQueue") Queue queue,@Qualifier("dieExchange")Exchange exchange){
//        return BindingBuilder.bind(queue).to(exchange).with("dieRoutingKey").noargs();
//    }
//
//    //死信队列
//    @Bean("dieQueue")
//    public Queue dieQueue(){
//        return QueueBuilder.durable("dieQueue").build();
//    }
//
//
////------------------------------------------------yyy配置的一个死信交换机与队列【持久化】-----------------------------------------------------------------
//
//
//
//
//
//
//
//
//
//
////------------------------------------------------yyy配置的一个无用的交换机与队列【持久化】-----------------------------------------------------------------
//
//    //yyy业务交换机2
//    @Bean("yyyExchange2")
//    public Exchange liveYyyExchange(){
//        return ExchangeBuilder.topicExchange("yyyExchange").build();
//    }
//
//    @Bean("Binding")
//    Binding liveYyyBinding(@Qualifier("yyyQueue") Queue queue, @Qualifier("yyyExchange2") Exchange exchange){
//        return BindingBuilder.bind(queue).to(exchange).with("yyyRoutingKey").noargs();
//    }
//
//    //yyy队列
//    @Bean("yyyQueue")
//    public Queue yyyQueue(){
//        return QueueBuilder.durable("yyyQueue").build();
//    }
//
//
////------------------------------------------------yyy配置的一个无用的交换机与队列【持久化】-----------------------------------------------------------------
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//}
